# 师傅类
class Master(object):
    def __init__(self):
        self.kongfu = '[古法煎饼果子配方]'

    def make_cake(self):
        print(f'运用{self.kongfu}制作煎饼果子')


# 学校类
class School(object):
    def __init__(self):
        self.kongfu = '[黑马煎饼果子配方]'

    def make_cake(self):
        print(f'运用{self.kongfu}制作煎饼果子')

# 徒弟类
class Prentice(Master, School):
    def __init__(self):
        self.kongfu = '[独创煎饼果子配方]'

    # 做独创煎饼果子
    def make_cake(self):
        # 如果是先调用父类的属性和方法，会将子类的属性和方法覆盖
        # 所以在调用子类方法前，先调用子类的初始化
        self.__init__()
        print(f'运用{self.kongfu}制作煎饼果子')

    # 做古法煎饼果子
    def make_master_cake(self):
        # 调用父类方法，为了保证也调用到父类的属性，必须先调用父类的初始化方法
        Master.__init__(self)
        Master.make_cake(self)

    # 做黑马煎饼果子
    def make_school_cake(self):
        School.__init__(self)
        School.make_cake(self)

# 测试：
tudi = Prentice()

tudi.make_cake()
tudi.make_school_cake()
tudi.make_master_cake()